From a physical standpoint, the capacity of a facility for storing electronic data is finite. Stated differently, there are only so many places to store data at a storage facility. With this in mind, it has happened that despite advances in techniques for storing electronic data (i.e. data compression), there is still a high demand for data storage. In the event, depending somewhat on scale, the cost of storing electronic data can be considerable.
It is well-known that hash functions, more commonly referred to simply as “hash,” can be of considerable use in many circumstances for handling electronic data. For example, it is known that hash can be used to effectively hasten data retrieval by facilitating look-up table activities or performing data comparison tasks. In particular, it is known that “hash” can be effectively used to identify the data content of a block of electronic data.
For many commercial and governmental activities it is typical for electronic files to be very extensive. Consequently, it is a fairly common practice to break electronic files into smaller data blocks. An obvious benefit here is that when broken into data blocks, electronic files can be more effectively handled. As a practical matter, it can easily happen that within a particular electronic file, or even more likely within a group of files, there may be many duplicate data blocks. In any event, all of the data blocks need to be identifiable and accounted for. Hash (i.e. hash functions) are, therefore, valuable tools for use in identifying the data content of a data block. Importantly, this identification can be accomplished without the need to resolve, and/or decrypt, the entire content of the data block. Specifically, after being hashed, it happens that the data blocks can be compressed and/or encrypted without altering the hash in any way. Heretofore, standard practice has been to store all these data blocks and their hash, without further processing.
In light of the above, it is an object of the present invention to provide a system and method for storing only essential data from an electronic data file at a storage facility. Another object of the present invention is to provide a system and method for storing electronic data blocks at a storage facility when the data block is not already stored at the facility. Still another object of the present invention is to provide a system and method for storing data blocks at a storage facility that is easy to implement, is simple to use and is comparatively cost effective.